package com.sisgesbyte.web.managedBean.rrhh;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;

import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.services.rrhh.MantenimientoEmpleadoService;
import com.sisgesbyte.services.rrhh.bean.EmpleadoBean;
import com.sisgesbyte.services.rrhh.bean.FiltroOpcionesEmpleadoFO;
import com.sisgesbyte.services.rrhh.bean.ListaEmpleadoResponse;
import com.sisgesbyte.web.managedBean.common.MantenimientoAbstract;
import com.sisgesbyte.web.managedBean.seguridad.OpcionesControlador;

@ManagedBean
@ViewScoped
public class EmpleadoMBean  extends MantenimientoAbstract implements Serializable{

	private static final long serialVersionUID = 1L;

	@EJB
	private MantenimientoEmpleadoService mantenimientoEmpleadoService;
	
	@Inject
	private Validaciones validaciones; 
	@ManagedProperty(value = "#{opcionesControlador}")
	private OpcionesControlador opcionesControlador;
	private List<EmpleadoBean> listaEmpleados;
	private List<EmpleadoBean> selectedEmpleado;
	private String tipoMantenimiento;
	private String saved;
	private String txtBuscar;
	
	@PostConstruct
	private void init() {
		saved = "";
		tipoMantenimiento = "";
		txtBuscar = "";
		inicializar();
	}
	
	@Override
	public void inicializar() {
		 
		try{
			FiltroOpcionesEmpleadoFO filtro = new FiltroOpcionesEmpleadoFO();
			ListaEmpleadoResponse response =  mantenimientoEmpleadoService.listaEmpleados(ObtenerIdTransaccion(), filtro);
			if(response.getCodigoRespuesta().equalsIgnoreCase(ConstantesInternasSistema.CODIGO_EXITO)){
				this.listaEmpleados = response.getListaEmpleados();
			}else{
				this.listaEmpleados = new ArrayList<EmpleadoBean>();
			}
		}catch(Exception e){
			System.out.println("Error al otener lista de empleados " + e);
			this.listaEmpleados = new ArrayList<EmpleadoBean>();
		}
	}

	@Override
	public void unSelect(UnselectEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void checkSelect(SelectEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void seleccionarItem(SelectEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void dobleSelect(SelectEvent event) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void nuevoItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void editItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void updateInsertItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public String ObtenerIdTransaccion() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void guardarItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void modificarItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void eliminarItem() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void actualizarEstado() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void limpiarFormulario() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void crearFiltro() {
		// TODO Auto-generated method stub
		
	}

	public OpcionesControlador getOpcionesControlador() {
		return opcionesControlador;
	}

	public void setOpcionesControlador(OpcionesControlador opcionesControlador) {
		this.opcionesControlador = opcionesControlador;
	}

	public String getTipoMantenimiento() {
		return tipoMantenimiento;
	}

	public void setTipoMantenimiento(String tipoMantenimiento) {
		this.tipoMantenimiento = tipoMantenimiento;
	}

	public String getSaved() {
		return saved;
	}

	public void setSaved(String saved) {
		this.saved = saved;
	}

	public String getTxtBuscar() {
		return txtBuscar;
	}

	public void setTxtBuscar(String txtBuscar) {
		this.txtBuscar = txtBuscar;
	}

	public List<EmpleadoBean> getListaEmpleados() {
		return listaEmpleados;
	}

	public void setListaEmpleados(List<EmpleadoBean> listaEmpleados) {
		this.listaEmpleados = listaEmpleados;
	}

	public List<EmpleadoBean> getSelectedEmpleado() {
		return selectedEmpleado;
	}

	public void setSelectedEmpleado(List<EmpleadoBean> selectedEmpleado) {
		this.selectedEmpleado = selectedEmpleado;
	}
	
}
